home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World 2000 February
/
PCWorld_2000-02_cd.bin
/
Software
/
Servis
/
FFE
/
MOD.SWG
/
0065_Digital Music Format DMF Effects.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1997-05-11
|
11KB
|
410 lines
───────────────────────────────────────────────────
DELUSION DIGITAL MUSIC EFFECTS V0.18ß1 (25/12/93)
───────────────────────────────────────────────────
Oki sorry dudes, some effect stuff is still in German....
English dox will be ready soon, no prob... but try thiz,
for help call us.....
GLOBAL TRACK
─────────────
Nr. Name DATA Default
0* No Global Data --- ---
1* Set Tick Frame Speed DATA 33
Setzt die Anzahl der Ticks pro Sekunde auf (DATA/4)+1 Hz.
Dadurch ist die Geschwindigkeit unabhängig vom aktuell gesetzten
Beat.
2* Set BPM Speed DATA 125
Setzt die BPM Geschwindigkeit auf DATA in BPM.
Die effektive Tickspeed ist abhängig vom momentan gesetztem Beat.
Ist Beat=0 wird Tick Frame Speed benützt.
Beats per Minute "BPM"
───────────────────────
Def.: TICK = eine Zeile im Pattern
Def.: CLICK = ein Effekt Click. Clicks werden zwischen den Ticks ausgeführt um
die Effekte zu "berechnen". Die Anzahl der Clicks wird vom
Player automatisch an die aktuelle Speed angepasst.
Def.: BPM = Anzahl der Beats [Viertel Noten/Quarter Notes] in einer Minute.
Bsp. 3 Beats Per Measure, 4 Ticks per Beat (=3/4 Takt)
┌─ ┌─01 Tick (hier 1 Tick = 1/16 Note ((1/4 Note)/4 8-) )
│ │ .
│ │ . zwischen jedem Tick werden die Effect "Clicks"
│ │ . ausgeführt
│ │ .
1 │ BEAT │ 02 Tick
│ │ 03 "
T │ └─04 "
A │ ┌─05
K │ BEAT │ 06
T │ │ 07
│ └─08
│ ┌─09
│ BEAT │ 10
│ │ 11
└─ └─12
Bsp. Bei einem 3/4 Takt, 8 Ticks per Beat (1 Tick = 1/32 Note) mit 120 BPM
und 4 Effekt Clicks muss die Musik Routine mit:
(120 BPM * 8 Ticks * 4 Clicks) / 60 sec = 64 Hz aufgerufen werden.
3* Set Beat HI│LOW Pattern Header
[HI Data] = Ticks per Beat
[LOW Data] = Beats per Measure
Hinweis: Jedes Pattern hat im Header einen default Beat gespeichert dieser
Effekt verändert den Beat nur im aktuellen Pattern.
4* Tick Delay HI│LOW
HI Data = Anzahl der Ticks die gewartet werden bis der nächste Tick
"verarbeitet" wird.
LOW Data = 1/16 Ticks die gewartet werden bis zum nächste Tick.
Die Effekte werden während der Pause nicht upgedated...
"Stotter Effekt" ;-)
5* Set External Flag DATA
Übergibt DATA als external readable Flag
- Set Global Volume
- Send Midi Command DATA
Sendet DATA an ein Midi Device.
- Slide Speed Up (TicksPerSecond/BPM)
- Slide Speed Down (TPS/BPM)
- Debug Flag (Stop die Music bis zu einem externen restart)
- Set Filters
(- Call External Function)
INSTRUMENT EFFECTS
───────────────────
0* No Effect Data --- ---
1* Stop Sample DATA
Das Sample wird gestoppt. Unterschied zu Note Off das Sample spielt nicht
weiter, gesetzte Noten nach dem Sample Stop sind nicht zu hören.
(DATA gibt an wieviel 1/256 Ticks vezögert wird bis das Sample gestoppt wird,
nicht implementiert, DATA=0 ! )
2* Stop Sample Loop
Löscht das Loop Flag, das Sample klingt aus. Das Sample wird bis zu Sample
Ende gespielt...
3* Instrument Volume Override/ DATA
Restart Sample
Spielt das Sample von vorne, unterschied zu einem normalen Sample Trigger ist
daß das Instrument Volume nicht übernommen wird.
Wenn eine Sample Nr. im Sample Slot steht wird dies "restartet", das Volume
aber nicht auf Instrument Volume gesetzt.
Wird unter anderem benötigt um MOD Einträge mit Note aber ohne Instrument Nr.
zu konvertieren (z.b. Mayday_r.mod).
4* Sample Delay/ HI Nibble│LOW Nibble
Trigger Sample
[HI Nibble] = 1/16 Ticks
[LOW Nibble] = not used
HI Nibble gibt an wieviel 1/16 Ticks vezögert wird bis das Sample getrigerd
wird. Wenn kein Sample Nr. im Sample Slot steht wird das zuletzt gesetzte
Sample Retriggerd.
5* Tremolo Retrig Sample HI Nibble│LOW Nibble
"Pro Tracker Retrig Note"
[HI Nibble] = 1/16 Ticks
[LOW Nibble] = not used
Das Sample wird mit einer Periodenlänge von HI Nibble/16 Ticks retriggert.
Für sehr schnelle Anschläge z.b. HiHats ;-)
6* Set Sample Offset DATA
[DATA] = Sample Offset in 256 Byte Blocks
Setzt das Sample Offset eines spielenden Samples auf die Position DATA*256.
Falls der Wert grösser ist wie das Sample lang wird der Effekt ignoriert!
Es können also nur die ersten 64 KB des Samples addressiert werden...
wird vorerst benötigt um MOD Effekte zu konvertieren, sollte später durch
einen sinnvolleren Parameter erneuert werden...
7* Invert (Tekkkno) Sample play direction DATA
Invertiert die Spielrichtung des Samples. DATA muss 0 sein!
{Future:
DATA = 0 Sample Spielrichtung invertieren
1 Sample von momentaner Position rückwärts spielen
2 Sample " " " vorwärts spielen }
8 Rewind Sample DATA
Invertiert Sample Abspielrichtung nur für aktuellen Tick.
- Reffer B. (Reverb)
- Invert Sample
Spielt Sample von Hinten nach vorne, Loops werden auch herum gedreht.
- Distortion
- DJ Scratch
Scratched das Sample durch sehr schnelles vor und zurück spielen.
- Jump Around
Spielt randommässig Sampleteile. Zap-Effekt
- Tune Up Instrument
Verstimmt das Sample/Instrument
- Tune Down Instrument
Verstimmt das Sample/Instrument
NOTE EFFECTS
─────────────
0* No Effect Data --- ---
1* Note Finetune SIGNED
[SIGNED] = Note um +/- 1/128 Halbtonschritte fein einstellen
2* Note Delay DATA
[DATA] = 1/256 Tick
Der Notewert wird nach DATA/256 Ticks gesetzt. Die Noteänderung wird damit
verzögert. Eine Verzögerung des Notenanschlags bewirkt "Sample Delay".
3* Arpeggio HI│LOW
[HI Data] = Halbtonschritte, über Grundnote
[LOW Data] = Halbtonschritte, über Grundnote
Die Note wird schnell (jedem Effekt Click) zwischen Note, Note+HI Data und
Note+LOW Data umgeschaltet.
4* Portamento Up DATA 0
Frequenz nach oben portamentieren [DATA] = 1/16 Halbtonschritte die bis
zum nächsten Tick nach oben geslidet werden.
Die Portamento Up Grenze liegt bei C-9.
5* Portamento Down DATA 0
Frequenz nach unten portamentieren [DATA] = 1/16 Halbtonschritte die bis
zum nächsten Tick nach unten geslidet werden.
Die Portamento Down Grenze liegt bei C-0.
6* Portamen to Note DATA 0
Frequenz in Richtung der letzt gesetzten "Buffer Note" sliden.
[DATA] = 1/16 Halbtonschritte die bis zum nächsten Tick geslidet werden.
7* Scratch to Note DATA ---
DATA = MIDI Note Value
Der aktuellem Notewert wird auf DATA bis zum Ende des aktuellen Ticks geslidet.
Für sehr schnelle slides über mehrere Oktaven, die zwischenstuffen sind
Halbtonschritte...
8* Vibrato Sin HI│LOW ---
HI Data = Speed-1 Vibrato Periodenlänge in Ticks
Bsp.: HI_Data=0 --> Speed 1, bedeuted:
1 Sinus durchlauf bis zum nächsten Tick
HI_Data=4 --> Speed 5, bedeuted:
1/5 Sinus durchlauf bis zum nächsten Tick
LOW Data = Amplitude-1 Vibrato Amplitude in 1/8 Halbtonschritte
Bsp.: LOW Data = 1 --> Amplitude=4, bedeuted:
Amplitude=2*1/4 Halbtonschritt = 1/2 Halbtonschritt
Die Grundnote wird mit +/- 1/2 Halbtonschritt ausgelenkt.
(max. Amplitude = +/- 2 Halbtonschritte 8-) )
9* Vibrato /\/\ HI│LOW ---
Note wird mit einem Dreieck Signal moduliert.
Effekt Parameter siehe Vibrato Sin.
10 Vibrato Sqaure HI│LOW ---
Note wird mit einem Rechteck Signal moduliert.
Effekt Parameter siehe Vibrato Sin.
11 Note Tremolo HI│LOW ---
HI Data = Ticks/32 Anfangs Notenfrequenz
LOW Data = Ticks/32 Note Off
12* Note Cut HI│LOW
[HI] = 1/16 Ticks
[LOW] = not used
Die Note geht nach HI Nibble/16 Ticks auf Note Off.
YO! YO! YO!
Die Vibrato, Tremolo und Arpeggio Speed sollten zusätzlich über eine feste
Frequenz (Notenfrequenzen) einstellbar werden. Da Speed Angaben über Ticks
vom aktuellen Tickspeed abhängig sind ... für eine harmonischere Modulation
währen feste Frequenzen besser.
VOLUME EFFECTS
───────────────
0* No Effect Data --- ---
1* SlideUP DATA ---
Volume wird nach oben portamentieren. DATA gibt an um wieviel Einheiten
bis zum nächsten Tick geslidet werden soll.
2* SlideDN DATA ---
Volume wid nach unten portamentieren. (siehe SlideUP)
3 Volume Tremolo DATA ---
HI Data = Ticks/32 Anfangs Volumewert
LOW Data = Ticks/32 Volume muted
4 Volume Vibrato Sin HI Nibble│LOW Nibble
"MOD Tremolo"
HI Nibble = Speed-1 Vibrato Periodenlänge in Ticks
Bsp.: HI_Data=0 --> Speed 1, bedeuted:
1 Sinus durchlauf bis zum nächsten Tick 8-)
LOW Nibble = Amplitude-1 Vibrato Amplitude in (aktuelles Volume)/32 Einheiten
Bsp.: aktuelles Volume = 128
LOW Data = 2 --> Amplitude=128/32*3=+/-12 Volumeeinheiten
bedeutet:
Die Lautstärke wird zwischen 128 und 104 Einheiten mit
einer Sinusschwingung moduliert.
(max. von 0-255 8-) )
5 Volume Vibrato /\/\ DATA
HI Data = Ticks/4 Vibrato Periodenlänge
LOW Data = Ticks Vibrato Amplitude
6 Volume Vibrato Sqaure DATA ---
HI Data = Ticks/4 Vibrato Periodenlänge
LOW Data = Ticks Vibrato Amplitude
7* Set Balance DATA
DATA= 0=ganz Links, 255=ganz Rechts, 128=Mitte
8* Slide Balance Left
Balance wird nach links geslidet. DATA gibt an um wieviel Einheiten
bis zum nächsten Tick geslidet werden soll.
9* Slide Balance Right
Balance wird nach rechts geslidet. DATA gibt an um wieviel Einheiten
bis zum nächsten Tick geslidet werden soll.
10 Vibrato Balance Left/Right
HI Data = Ticks/4 Vibrato Periodenlänge
LOW Data = Ticks Vibrato Amplitude
* Effekte funktionsfähig
END.